# 3.新建“exerc3”Python文件完成作业：”json.txt”文件中有用户的注册信息，先要求：
# （1）.读取json.txt中的信息
# （2）.为用户编写UserInfo类，对Json数据中的每个对象进行封装
# （3）.使用魔术方法__str__可以输出每个用户的基本信息
# （4）.将Json数据中所有的用户信息进行数据封装并存入列表中
# （5）.遍历列表输出所有的用户信息
import json


class UserInfo(object):
    email = ''
    name = ''
    password = ''
    qq = ''
    __count = 0

    def __init__(self, email, name, password, qq):
        self.email = email
        self.name = name
        self.password = password
        self.qq = qq
        UserInfo.__count += 1
        self.__count = UserInfo.__count

    def __str__(self):
        return f'用户:{self.__count:<15} 邮箱:{self.email:<20} 名字:{self.name:<15} 密码:{self.password:<15} qq:{self.qq:<15}'


def read(path):
    resp = json.load(open(path, 'r', encoding='utf-8'))
    return resp


def pack(resp):
    list1 = []
    for i in resp:
        list1.append(UserInfo(i.get('email'), i.get('name'), i.get('password'), i.get('qq')))
    return list1


def output(list1):
    for i in list1:
        print(i.__str__())


if __name__ == '__main__':
    resp = read('json.txt')
    list1 = pack(resp)
    output(list1)
